//package java_0303_heap;
//
//import java.util.Comparator;
//import java.util.Queue;//导入系统队列
//import java.util.PriorityQueue;//导入系统优先级队列
//import java.util.Arrays;
//
//public class PriroityQueueTest {
//    public static void main(String[] args) {
//        //比较器如何使用：通过构造方法传入一个比较器
//        Queue<Student> queue=new PriorityQueue<>();
//        Student stu1=new Student("铭哥",18);
//        Student stu2=new Student("龙哥",20);
//        Student stu3=new Student("蛋哥",22);
////        System.out.println(stu1.equals(stu2));
////        System.out.println(stu1.compareTo(stu2));
////        System.out.println(stu3.compareTo(stu2));
//
//        //构建一个对象数组
//        Student[] students= {stu1,stu2,stu3};
//        Arrays.sort(students);//排序默认是升序
//        System.out.println(Arrays.toString(students));
//    }
////    public static void main(String[] args) {
////        int[] data={1,4,3,2,7,6,5,8,10,9};
////        Queue<Integer> queue=new PriorityQueue<>();//导入系统包之后此时是系统Queue接口
////        for(int i:data){//依次入队
////            queue.offer(i);
////        }
////        int[] ret=new int[data.length];
////        for (int i = 0; i < ret.length; i++) {
////            //基于最小堆出队就是将当前队列中的最小值依次出队
////            ret[i]=queue.poll();
////        }
////        System.out.println(Arrays.toString(ret));
////    }
//}
//class StudentCom implements Comparator<Student>{
//
//    @Override
//    public int compare(Student o1, Student o2) {
//        return o1.getAge()-o2.getAge();//升序的处理，o1,o2谁大谁在前
//    }
//}
//class StudentComDesc implements Comparator<Student>{
//
//    @Override
//    public int compare(Student o1, Student o2) {
//        return o1.getAge()-o2.getAge();//降序处理结果
//    }
//}
//class Student {
//    private String name;
//    private int age;
//    public Student(String name, int age) {
//        this.name = name;
//        this.age = age;
//    }
//
//    public String getName() {
//        return name;
//    }
//
//    public int getAge() {
//        return age;
//    }
//
//    //    /**
////     * 覆写object提供的equals
////     * @return
////     */
////    public boolean equals(Object o){//将当前对象和传入对象比较
////        if(o==null){
////            return false;
////        }
////        if(this==o){//this是当前对象对引用
////            return true;
////        }
////        //传入的o是否是Student类new出来的
////        if(!(o instanceof Student)){
////            //instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例
////            //此时o都不是Student类型，没有可比性
////            return false;
////        }
////        //向下转型还原为Student类
////        //此处为何向下转型？
////        Student stu=(Student) o;
////        return this.age==stu.age&&this.name.equals(stu.name);
////    }
//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                '}';
//    }
//
////    @Override
////    public int compareTo(Student o) {
////        return this.age-o.age;//谁年龄大谁就大
////    }
//}
////public class PriroityQueueTest {
////    public static void main(String[] args) {
////        int[] data={1,4,3,2,7,6,5,8,10,9};
////        Queue<Integer> queue=new PriorityQueue<>();//先前自定义的Queue接口
////        for(int i:data){//依次入队
////            queue.offer(i);
////        }
////        int[] ret=new int[data.length];
////        for (int i = 0; i < ret.length; i++) {
////            //基于最小堆出队就是将当前队列中的最小值依次出队
////            ret[i]=queue.poll();
////        }
////        System.out.println(Arrays.toString(ret));
////    }
////}
